賦值就是賦予一個值,程式中的=與數學中使用的等號概念不同,在程式裡=就是把等號右邊的數據放到等號左邊。
語法糖 syntax sugar,為了更便捷快速的打出程式碼,Java Script支援將 x = x + 1 (正常寫法)更改為 x += 1(語法糖)。
變數是一個可以存儲值的容器,變數內部的值可以不斷改變,相反的,有固定數值稱為常數,像是π、e等等。
要創造一個變數之前,必須先宣告變數。
為什麼要宣告變數?
如果有宣告變數,程式碼多時才不易出錯,也比較不會跟 global object 混淆。
接下來是三種宣告方式:
若變數的值會變動,則用let
來宣告變數
若變數的值不會變動,則用常數const
(constants)來宣告變數
var
宣告變數,較不建議使用
不建議使用理由
function example() {
if (true) {
var x = 10;
}
console.log(x); // -> 10,即使 x 在 if 區塊內宣告
}
undefined
console.log(y); // -> undefined
var y = 20;
var
可以重複宣告相同的變數,這可能會導致錯誤或不容易追蹤的行為var z = 30;
var z = 40; // -> z 會被重新宣告
var
將成為全域變數,這可能會導致變數名稱衝突或不易追蹤的行為function example() {
var localVar = 50;
}
console.log(localVar); // 這裡會出錯誤,因為 localVar 是在函式內宣告
var
可以在同一範疇內重新賦值,這可能會導致程式邏輯上的混淆或錯誤var a = 60;
a = 70; // a 的值被重新賦值為 70
const
宣告的變數,一定需要馬上賦予初始值 initializerconst PI = 3.14; // 在這裡給予了初始值 3.14
const name; // 錯誤,因為未給予初始值
const
不能做重複賦值 reassignment is not allowed//情況一
const PI = 3.14; // 在這裡給予了初始值 3.14
PI = 4.0; // 錯誤,因為無法重新賦值 const 變數
//情況二
const age = 30;
age = 31; // 錯誤,因為無法重新賦值 const 變數
const
, let
宣告過的變數,都不能重複宣告 redeclaration is not allowedlet
let x = 10;
let x = 20; // 錯誤,因為 x 已經被宣告過了
const
const y = 30;
const y = 40; // 錯誤,因為 y 已經被宣告過了
let
不需要,宣告了變數,但還沒有賦值,則變數的值是未定義 undefinedlet x; // 先宣告變數 x,但沒有給它賦值
console.log(x); // -> undefined,因為 x 的值尚未被賦值
x = 10; // 現在給 x 賦值為 10
console.log(x); // -> 10,因為 x 的值已經被賦值
重複宣告 redeclaration | 重複賦值 reassignment | 初始值 initializer | |
---|---|---|---|
let |
X | V | X |
const |
X | X | V |
以上就是今天的變數與賦值,下一篇會來學習數字運算、string。